home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / FixedStorage.h < prev    next >
C/C++ Source or Header  |  1990-11-30  |  832b  |  43 lines

  1. #ifndef MemPools_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define MemPools_First
  6.  
  7. #include "Types.h"
  8.  
  9. const int cMemPoolSize=   200;
  10. const int cObjMaxSize =   256;       
  11.  
  12. //---- Pools of fixed size storage allocators -----------------------
  13.  
  14. class MemPools {
  15. public:
  16.     static void *Alloc(size_t sz);
  17.     static void Free(void *vp, size_t sz);
  18.     static void PrintStatistics();
  19.     static void FreePools();
  20. };
  21.  
  22. //---- Pool for a specific size ---------------------------------------
  23.  
  24. class MemPool {
  25. friend class MemPools;
  26.     struct Chunk *chunks;
  27.     struct FreeNode *freeList;
  28.     int lastIndex;
  29.     int chunkSize;
  30.     size_t objSize;
  31.     int allocated;
  32.     int recycled;
  33.     int freed;
  34.     int nchunks;
  35. public:
  36.     MemPool(size_t objSize);
  37.     ~MemPool();
  38.     void *Alloc();
  39.     void Free(void *);
  40. };
  41.  
  42. #endif MemPools_First
  43.